package com.tensquare.usercrawler.processor;

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.processor.PageProcessor;

@Component
public class UserPageProcessor implements PageProcessor {
	
	//站点设置
	private Site site = Site.me()
			.setRetryTimes(1) //重试次数
			.setSleepTime(1000)//休眠时间
			.setTimeOut(10000);//超时时间
	
	/**
	 * 站点信息： 休眠时间、超时时间、重试次数
	 */
	@Override
	public Site getSite() {
		return site;
	}


	/**
	 * 处理数据方法
	 */
	@Override
	public void process(Page page) {
		//获取指定的url
		List<String> url1 = page.getHtml().regex("https://my.oschina.net/u/[0-9]{1,7}/blog/[0-9]{1,7}").all();
		List<String> url2 = page.getHtml().regex("https://my.oschina.net/[a-zA-Z0-9_-]{1,20}/blog/[0-9]{1,7}").all();
		//把url2合并到url1中
		url1.addAll(url2);
		
		
		//把url递归爬取
		page.addTargetRequests(url1);
		
		
		//获取内容
		String nickname = page.getHtml().xpath("//*[@id=\"mainScreen\"]/div/div/div/div[2]/div[1]/div[2]/div[2]/div[1]/a/span/text()").toString();
		String avatar = page.getHtml().xpath("//*[@id=\"mainScreen\"]/div/div/div/div[2]/div[1]/div[2]/div[2]/div[1]/a/div").css("img", "src").toString();
		//判空
		if(StringUtils.isNotBlank(nickname)) {
			page.putField("nickname", nickname.trim());
			//头像有可能为空
			if(StringUtils.isNotBlank(avatar)) {
				page.putField("avatar", avatar.trim());
			}
			
		}
		else {
			//如果为空跳过采集
			page.setSkip(true);
		}
	}

}
